import request from '@/utils/request'

/**
 * 帐号登录
 * @param {String} account - 用户名
 * @param {String} password - 密码
 * @returns Promise
 */
export const userAccountLogin = ({
  account,
  password
}) => {
  return request('/login', 'post', {
    account,
    password
  })
}


/**
 * 短信登录
 * @param {String} mobile - 手机号
 * @param {String} code - 验证码
 * @returns Promise
 */
export const userMobileLogin = ({
  mobile,
  code
}) => {
  return request('/login/code', 'post', {
    mobile,
    code
  })
}

/**
 * 获取手机号登录时的短信登录验证码
 * @param {String} mobile - 手机号
 * @returns Promise
 */
export const userMobileLoginMsg = (mobile) => {
  return request('/login/code', 'get', {
    mobile
  })
}


/**
 * 第三方登录
 * @param {String} unionId - 第三方登录唯一标识
 * @param {Integer} source - 来源 1为pc，2为webapp，3为微信小程序，4为Android，5为ios,6为qq,7为微信
 * @returns Promise
 */
export const userQQLogin = (unionId, source = 1) => {
  return request('/login/social', 'post', {
    unionId,
    source
  })
}

/**
 * 获取QQ授权绑定时候的短信验证码
 * @param {String} mobile - 手机号
 * @returns promise
 */
export const userQQBindCode = (mobile) => {
  return request('/login/social/code', 'get', {
    mobile
  })
}

/**
 * QQ绑定手机帐号
 * @param {String} unionId - QQ唯一标识，openId
 * @param {String} mobile - 手机号
 * @param {String} code - 验证码
 * @returns
 */
export const userQQBindLogin = ({
  unionId,
  mobile,
  code
}) => {
  return request('/login/social/bind', 'post', {
    unionId,
    mobile,
    code
  })
}

/**
 * QQ登录-完善信息
 * @param {String} unionId - QQ唯一标识，openId
 * @param {String} account - 账号
 * @param {String} mobile - 手机号
 * @param {String} code - 验证码
 * @param {String} password - 密码
 * @returns
 */
export const userQQPatchLogin = ({
  unionId,
  account,
  mobile,
  code,
  password
}) => {
  return request(`/login/social/${unionId}/complement`, 'post', {
    account,
    mobile,
    code,
    password
  })
}

/**
 * QQ授权后完善信息时的短信验证码
 * @param {String} mobile - 手机号
 * @returns promise
 */
export const userQQPatchCode = mobile => {
  return request('/register/code', 'get', {
    mobile
  })
}


/**
 * 校验帐号是否存在
 * @param {String} account - 帐号
 * @returns Promise
 */
export const userCheckAccount = (account) => {
  return request('/register/check', 'get', {
    account
  })
}